home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / nl80211.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  16KB  |  469 lines

  1. #ifndef __LINUX_NL80211_H
  2. #define __LINUX_NL80211_H
  3. /*
  4.  * 802.11 netlink interface public header
  5.  *
  6.  * Copyright 2006, 2007 Johannes Berg <johannes@sipsolutions.net>
  7.  */
  8.  
  9. /**
  10.  * DOC: Station handling
  11.  *
  12.  * Stations are added per interface, but a special case exists with VLAN
  13.  * interfaces. When a station is bound to an AP interface, it may be moved
  14.  * into a VLAN identified by a VLAN interface index (%NL80211_ATTR_STA_VLAN).
  15.  * The station is still assumed to belong to the AP interface it was added
  16.  * to.
  17.  *
  18.  * TODO: need more info?
  19.  */
  20.  
  21. /**
  22.  * enum nl80211_commands - supported nl80211 commands
  23.  *
  24.  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
  25.  *
  26.  * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request
  27.  *    to get a list of all present wiphys.
  28.  * @NL80211_CMD_SET_WIPHY: set wiphy name, needs %NL80211_ATTR_WIPHY and
  29.  *    %NL80211_ATTR_WIPHY_NAME.
  30.  * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
  31.  *    or rename notification. Has attributes %NL80211_ATTR_WIPHY and
  32.  *    %NL80211_ATTR_WIPHY_NAME.
  33.  * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes
  34.  *    %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
  35.  *
  36.  * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration;
  37.  *    either a dump request on a %NL80211_ATTR_WIPHY or a specific get
  38.  *    on an %NL80211_ATTR_IFINDEX is supported.
  39.  * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires
  40.  *    %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
  41.  * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response
  42.  *    to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX,
  43.  *    %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also
  44.  *    be sent from userspace to request creation of a new virtual interface,
  45.  *    then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and
  46.  *    %NL80211_ATTR_IFNAME.
  47.  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
  48.  *    %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
  49.  *    userspace to request deletion of a virtual interface, then requires
  50.  *    attribute %NL80211_ATTR_IFINDEX.
  51.  *
  52.  * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
  53.  *    by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
  54.  * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT or
  55.  *    %NL80211_ATTR_KEY_THRESHOLD.
  56.  * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
  57.  *    %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC and %NL80211_ATTR_KEY_CIPHER
  58.  *    attributes.
  59.  * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX
  60.  *    or %NL80211_ATTR_MAC.
  61.  *
  62.  * @NL80211_CMD_GET_BEACON: retrieve beacon information (returned in a
  63.  *    %NL80222_CMD_NEW_BEACON message)
  64.  * @NL80211_CMD_SET_BEACON: set the beacon on an access point interface
  65.  *    using the %NL80211_ATTR_BEACON_INTERVAL, %NL80211_ATTR_DTIM_PERIOD,
  66.  *    %NL80211_BEACON_HEAD and %NL80211_BEACON_TAIL attributes.
  67.  * @NL80211_CMD_NEW_BEACON: add a new beacon to an access point interface,
  68.  *    parameters are like for %NL80211_CMD_SET_BEACON.
  69.  * @NL80211_CMD_DEL_BEACON: remove the beacon, stop sending it
  70.  *
  71.  * @NL80211_CMD_GET_STATION: Get station attributes for station identified by
  72.  *    %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
  73.  * @NL80211_CMD_SET_STATION: Set station attributes for station identified by
  74.  *    %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
  75.  * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the
  76.  *    the interface identified by %NL80211_ATTR_IFINDEX.
  77.  * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
  78.  *    or, if no MAC address given, all stations, on the interface identified
  79.  *    by %NL80211_ATTR_IFINDEX.
  80.  *
  81.  * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to
  82.  *     destination %NL80211_ATTR_MAC on the interface identified by
  83.  *     %NL80211_ATTR_IFINDEX.
  84.  * @NL80211_CMD_SET_MPATH:  Set mesh path attributes for mesh path to
  85.  *     destination %NL80211_ATTR_MAC on the interface identified by
  86.  *     %NL80211_ATTR_IFINDEX.
  87.  * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
  88.  *    the interface identified by %NL80211_ATTR_IFINDEX.
  89.  * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
  90.  *    or, if no MAC address given, all mesh paths, on the interface identified
  91.  *    by %NL80211_ATTR_IFINDEX.
  92.  *
  93.  * @NL80211_CMD_MAX: highest used command number
  94.  * @__NL80211_CMD_AFTER_LAST: internal use
  95.  */
  96. enum nl80211_commands {
  97. /* don't change the order or add anything inbetween, this is ABI! */
  98.     NL80211_CMD_UNSPEC,
  99.  
  100.     NL80211_CMD_GET_WIPHY,        /* can dump */
  101.     NL80211_CMD_SET_WIPHY,
  102.     NL80211_CMD_NEW_WIPHY,
  103.     NL80211_CMD_DEL_WIPHY,
  104.  
  105.     NL80211_CMD_GET_INTERFACE,    /* can dump */
  106.     NL80211_CMD_SET_INTERFACE,
  107.     NL80211_CMD_NEW_INTERFACE,
  108.     NL80211_CMD_DEL_INTERFACE,
  109.  
  110.     NL80211_CMD_GET_KEY,
  111.     NL80211_CMD_SET_KEY,
  112.     NL80211_CMD_NEW_KEY,
  113.     NL80211_CMD_DEL_KEY,
  114.  
  115.     NL80211_CMD_GET_BEACON,
  116.     NL80211_CMD_SET_BEACON,
  117.     NL80211_CMD_NEW_BEACON,
  118.     NL80211_CMD_DEL_BEACON,
  119.  
  120.     NL80211_CMD_GET_STATION,
  121.     NL80211_CMD_SET_STATION,
  122.     NL80211_CMD_NEW_STATION,
  123.     NL80211_CMD_DEL_STATION,
  124.  
  125.     NL80211_CMD_GET_MPATH,
  126.     NL80211_CMD_SET_MPATH,
  127.     NL80211_CMD_NEW_MPATH,
  128.     NL80211_CMD_DEL_MPATH,
  129.  
  130.     /* add commands here */
  131.  
  132.     /* used to define NL80211_CMD_MAX below */
  133.     __NL80211_CMD_AFTER_LAST,
  134.     NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
  135. };
  136.  
  137.  
  138. /**
  139.  * enum nl80211_attrs - nl80211 netlink attributes
  140.  *
  141.  * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors
  142.  *
  143.  * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf.
  144.  *    /sys/class/ieee80211/<phyname>/index
  145.  * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
  146.  *
  147.  * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
  148.  * @NL80211_ATTR_IFNAME: network interface name
  149.  * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype
  150.  *
  151.  * @NL80211_ATTR_MAC: MAC address (various uses)
  152.  *
  153.  * @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of
  154.  *    16 bytes encryption key followed by 8 bytes each for TX and RX MIC
  155.  *    keys
  156.  * @NL80211_ATTR_KEY_IDX: key ID (u8, 0-3)
  157.  * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11
  158.  *    section 7.3.2.25.1, e.g. 0x000FAC04)
  159.  * @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and
  160.  *    CCMP keys, each six bytes in little endian
  161.  *
  162.  * @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU
  163.  * @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing
  164.  * @NL80211_ATTR_BEACON_HEAD: portion of the beacon before the TIM IE
  165.  * @NL80211_ATTR_BEACON_TAIL: portion of the beacon after the TIM IE
  166.  *
  167.  * @NL80211_ATTR_STA_AID: Association ID for the station (u16)
  168.  * @NL80211_ATTR_STA_FLAGS: flags, nested element with NLA_FLAG attributes of
  169.  *    &enum nl80211_sta_flags.
  170.  * @NL80211_ATTR_STA_LISTEN_INTERVAL: listen interval as defined by
  171.  *    IEEE 802.11 7.3.1.6 (u16).
  172.  * @NL80211_ATTR_STA_SUPPORTED_RATES: supported rates, array of supported
  173.  *    rates as defined by IEEE 802.11 7.3.2.2 but without the length
  174.  *    restriction (at most %NL80211_MAX_SUPP_RATES).
  175.  * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
  176.  *    to, or the AP interface the station was originally added to to.
  177.  * @NL80211_ATTR_STA_INFO: information about a station, part of station info
  178.  *    given for %NL80211_CMD_GET_STATION, nested attribute containing
  179.  *    info as possible, see &enum nl80211_sta_info.
  180.  *
  181.  * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands,
  182.  *    consisting of a nested array.
  183.  *
  184.  * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes).
  185.  * @NL80211_ATTR_PLINK_ACTION: action to perform on the mesh peer link.
  186.  * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path.
  187.  * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path
  188.  *     info given for %NL80211_CMD_GET_MPATH, nested attribute described at
  189.  *    &enum nl80211_mpath_info.
  190.  *
  191.  *
  192.  * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of
  193.  *      &enum nl80211_mntr_flags.
  194.  *
  195.  * @NL80211_ATTR_MAX: highest attribute number currently defined
  196.  * @__NL80211_ATTR_AFTER_LAST: internal use
  197.  */
  198. enum nl80211_attrs {
  199. /* don't change the order or add anything inbetween, this is ABI! */
  200.     NL80211_ATTR_UNSPEC,
  201.  
  202.     NL80211_ATTR_WIPHY,
  203.     NL80211_ATTR_WIPHY_NAME,
  204.  
  205.     NL80211_ATTR_IFINDEX,
  206.     NL80211_ATTR_IFNAME,
  207.     NL80211_ATTR_IFTYPE,
  208.  
  209.     NL80211_ATTR_MAC,
  210.  
  211.     NL80211_ATTR_KEY_DATA,
  212.     NL80211_ATTR_KEY_IDX,
  213.     NL80211_ATTR_KEY_CIPHER,
  214.     NL80211_ATTR_KEY_SEQ,
  215.     NL80211_ATTR_KEY_DEFAULT,
  216.  
  217.     NL80211_ATTR_BEACON_INTERVAL,
  218.     NL80211_ATTR_DTIM_PERIOD,
  219.     NL80211_ATTR_BEACON_HEAD,
  220.     NL80211_ATTR_BEACON_TAIL,
  221.  
  222.     NL80211_ATTR_STA_AID,
  223.     NL80211_ATTR_STA_FLAGS,
  224.     NL80211_ATTR_STA_LISTEN_INTERVAL,
  225.     NL80211_ATTR_STA_SUPPORTED_RATES,
  226.     NL80211_ATTR_STA_VLAN,
  227.     NL80211_ATTR_STA_INFO,
  228.  
  229.     NL80211_ATTR_WIPHY_BANDS,
  230.  
  231.     NL80211_ATTR_MNTR_FLAGS,
  232.  
  233.     NL80211_ATTR_MESH_ID,
  234.     NL80211_ATTR_STA_PLINK_ACTION,
  235.     NL80211_ATTR_MPATH_NEXT_HOP,
  236.     NL80211_ATTR_MPATH_INFO,
  237.  
  238.     /* add attributes here, update the policy in nl80211.c */
  239.  
  240.     __NL80211_ATTR_AFTER_LAST,
  241.     NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
  242. };
  243.  
  244. #define NL80211_MAX_SUPP_RATES            32
  245. #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY    0
  246. #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY    16
  247. #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY    24
  248.  
  249. /**
  250.  * enum nl80211_iftype - (virtual) interface types
  251.  *
  252.  * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides
  253.  * @NL80211_IFTYPE_ADHOC: independent BSS member
  254.  * @NL80211_IFTYPE_STATION: managed BSS member
  255.  * @NL80211_IFTYPE_AP: access point
  256.  * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points
  257.  * @NL80211_IFTYPE_WDS: wireless distribution interface
  258.  * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
  259.  * @NL80211_IFTYPE_MESH_POINT: mesh point
  260.  * @NL80211_IFTYPE_MAX: highest interface type number currently defined
  261.  * @__NL80211_IFTYPE_AFTER_LAST: internal use
  262.  *
  263.  * These values are used with the %NL80211_ATTR_IFTYPE
  264.  * to set the type of an interface.
  265.  *
  266.  */
  267. enum nl80211_iftype {
  268.     NL80211_IFTYPE_UNSPECIFIED,
  269.     NL80211_IFTYPE_ADHOC,
  270.     NL80211_IFTYPE_STATION,
  271.     NL80211_IFTYPE_AP,
  272.     NL80211_IFTYPE_AP_VLAN,
  273.     NL80211_IFTYPE_WDS,
  274.     NL80211_IFTYPE_MONITOR,
  275.     NL80211_IFTYPE_MESH_POINT,
  276.  
  277.     /* keep last */
  278.     __NL80211_IFTYPE_AFTER_LAST,
  279.     NL80211_IFTYPE_MAX = __NL80211_IFTYPE_AFTER_LAST - 1
  280. };
  281.  
  282. /**
  283.  * enum nl80211_sta_flags - station flags
  284.  *
  285.  * Station flags. When a station is added to an AP interface, it is
  286.  * assumed to be already associated (and hence authenticated.)
  287.  *
  288.  * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X)
  289.  * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames
  290.  *    with short barker preamble
  291.  * @NL80211_STA_FLAG_WME: station is WME/QoS capable
  292.  */
  293. enum nl80211_sta_flags {
  294.     __NL80211_STA_FLAG_INVALID,
  295.     NL80211_STA_FLAG_AUTHORIZED,
  296.     NL80211_STA_FLAG_SHORT_PREAMBLE,
  297.     NL80211_STA_FLAG_WME,
  298.  
  299.     /* keep last */
  300.     __NL80211_STA_FLAG_AFTER_LAST,
  301.     NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
  302. };
  303.  
  304. /**
  305.  * enum nl80211_sta_info - station information
  306.  *
  307.  * These attribute types are used with %NL80211_ATTR_STA_INFO
  308.  * when getting information about a station.
  309.  *
  310.  * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved
  311.  * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
  312.  * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
  313.  * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
  314.  * @__NL80211_STA_INFO_AFTER_LAST: internal
  315.  * @NL80211_STA_INFO_MAX: highest possible station info attribute
  316.  */
  317. enum nl80211_sta_info {
  318.     __NL80211_STA_INFO_INVALID,
  319.     NL80211_STA_INFO_INACTIVE_TIME,
  320.     NL80211_STA_INFO_RX_BYTES,
  321.     NL80211_STA_INFO_TX_BYTES,
  322.     NL80211_STA_INFO_LLID,
  323.     NL80211_STA_INFO_PLID,
  324.     NL80211_STA_INFO_PLINK_STATE,
  325.  
  326.     /* keep last */
  327.     __NL80211_STA_INFO_AFTER_LAST,
  328.     NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
  329. };
  330.  
  331. /**
  332.  * enum nl80211_mpath_flags - nl80211 mesh path flags
  333.  *
  334.  * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active
  335.  * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running
  336.  * @NL80211_MPATH_FLAG_DSN_VALID: the mesh path contains a valid DSN
  337.  * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set
  338.  * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded
  339.  */
  340. enum nl80211_mpath_flags {
  341.     NL80211_MPATH_FLAG_ACTIVE =    1<<0,
  342.     NL80211_MPATH_FLAG_RESOLVING =    1<<1,
  343.     NL80211_MPATH_FLAG_DSN_VALID =    1<<2,
  344.     NL80211_MPATH_FLAG_FIXED =    1<<3,
  345.     NL80211_MPATH_FLAG_RESOLVED =    1<<4,
  346. };
  347.  
  348. /**
  349.  * enum nl80211_mpath_info - mesh path information
  350.  *
  351.  * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting
  352.  * information about a mesh path.
  353.  *
  354.  * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved
  355.  * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination
  356.  * @NL80211_ATTR_MPATH_DSN: destination sequence number
  357.  * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path
  358.  * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now
  359.  * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in
  360.  *     &enum nl80211_mpath_flags;
  361.  * @NL80211_ATTR_MPATH_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
  362.  * @NL80211_ATTR_MPATH_DISCOVERY_RETRIES: mesh path discovery retries
  363.  */
  364. enum nl80211_mpath_info {
  365.     __NL80211_MPATH_INFO_INVALID,
  366.     NL80211_MPATH_INFO_FRAME_QLEN,
  367.     NL80211_MPATH_INFO_DSN,
  368.     NL80211_MPATH_INFO_METRIC,
  369.     NL80211_MPATH_INFO_EXPTIME,
  370.     NL80211_MPATH_INFO_FLAGS,
  371.     NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
  372.     NL80211_MPATH_INFO_DISCOVERY_RETRIES,
  373.  
  374.     /* keep last */
  375.     __NL80211_MPATH_INFO_AFTER_LAST,
  376.     NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
  377. };
  378.  
  379. /**
  380.  * enum nl80211_band_attr - band attributes
  381.  * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
  382.  * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band,
  383.  *    an array of nested frequency attributes
  384.  * @NL80211_BAND_ATTR_RATES: supported bitrates in this band,
  385.  *    an array of nested bitrate attributes
  386.  */
  387. enum nl80211_band_attr {
  388.     __NL80211_BAND_ATTR_INVALID,
  389.     NL80211_BAND_ATTR_FREQS,
  390.     NL80211_BAND_ATTR_RATES,
  391.  
  392.     /* keep last */
  393.     __NL80211_BAND_ATTR_AFTER_LAST,
  394.     NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
  395. };
  396.  
  397. /**
  398.  * enum nl80211_frequency_attr - frequency attributes
  399.  * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
  400.  * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
  401.  *    regulatory domain.
  402.  * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is
  403.  *    permitted on this channel in current regulatory domain.
  404.  * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted
  405.  *    on this channel in current regulatory domain.
  406.  * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
  407.  *    on this channel in current regulatory domain.
  408.  */
  409. enum nl80211_frequency_attr {
  410.     __NL80211_FREQUENCY_ATTR_INVALID,
  411.     NL80211_FREQUENCY_ATTR_FREQ,
  412.     NL80211_FREQUENCY_ATTR_DISABLED,
  413.     NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
  414.     NL80211_FREQUENCY_ATTR_NO_IBSS,
  415.     NL80211_FREQUENCY_ATTR_RADAR,
  416.  
  417.     /* keep last */
  418.     __NL80211_FREQUENCY_ATTR_AFTER_LAST,
  419.     NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
  420. };
  421.  
  422. /**
  423.  * enum nl80211_bitrate_attr - bitrate attributes
  424.  * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps
  425.  * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported
  426.  *    in 2.4 GHz band.
  427.  */
  428. enum nl80211_bitrate_attr {
  429.     __NL80211_BITRATE_ATTR_INVALID,
  430.     NL80211_BITRATE_ATTR_RATE,
  431.     NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE,
  432.  
  433.     /* keep last */
  434.     __NL80211_BITRATE_ATTR_AFTER_LAST,
  435.     NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1
  436. };
  437.  
  438. /**
  439.  * enum nl80211_mntr_flags - monitor configuration flags
  440.  *
  441.  * Monitor configuration flags.
  442.  *
  443.  * @__NL80211_MNTR_FLAG_INVALID: reserved
  444.  *
  445.  * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS
  446.  * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
  447.  * @NL80211_MNTR_FLAG_CONTROL: pass control frames
  448.  * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
  449.  * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
  450.  *    overrides all other flags.
  451.  *
  452.  * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use
  453.  * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag
  454.  */
  455. enum nl80211_mntr_flags {
  456.     __NL80211_MNTR_FLAG_INVALID,
  457.     NL80211_MNTR_FLAG_FCSFAIL,
  458.     NL80211_MNTR_FLAG_PLCPFAIL,
  459.     NL80211_MNTR_FLAG_CONTROL,
  460.     NL80211_MNTR_FLAG_OTHER_BSS,
  461.     NL80211_MNTR_FLAG_COOK_FRAMES,
  462.  
  463.     /* keep last */
  464.     __NL80211_MNTR_FLAG_AFTER_LAST,
  465.     NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
  466. };
  467.  
  468. #endif /* __LINUX_NL80211_H */
  469.